package com.scs.application.modules.upms.service;

import com.scs.application.core.service.IBaseService;
import com.scs.application.modules.upms.entity.GenTable;
import com.scs.application.modules.upms.entity.GenTableColumn;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 **/
public interface GenTableService extends IBaseService<GenTable> {

    /**
     * 从指定数据源中查询表结构信息
     *
     * @param datasourceId
     * @return
     */
    List<GenTable> findTableListFromDB(String datasourceId);

    /**
     * 从指定数据源中加载指定表的相关列信息
     *
     * @param datasourceId 数据源ID
     * @param tableName    表名
     * @return
     */
    List<GenTableColumn> findTableColumnListFromDB(String datasourceId, String tableName);


    /**
     * 保存代码生成配置信息
     *
     * @param genTable
     */
    @Transactional
    void saveOrUpdateGenInfo(GenTable genTable);

    /**
     * 保存并生成代码
     *
     * @param genTable
     * @return
     */
    @Transactional
    List<String> saveAndGenerate(GenTable genTable);
}
